﻿namespace Blaze.FileSystems
{
    /// <summary>
    /// 索引文件里的一项。
    /// </summary>
    public class IndexEntry
    {
        /// <summary>
        /// 获取索引文件内容的哈希值。
        /// </summary>
        public byte[] Hash { get; internal set; }

        /// <summary>
        /// 获取文件的哈希路径，如12/6e8f8340016cf1862d292912c5d1a1e519402e
        /// </summary>
        public string HashedPath
        {
            get
            {
                if (mHashedPath == null)
                    mHashedPath = IndexFile.GetHashedPath(Hash);
                return mHashedPath;
            }
        }

        /// <summary>
        /// 获取文件的原路径。
        /// </summary>
        public ulong Path { get; internal set; }

        /// <summary>
        /// 获取文件的大小。
        /// </summary>
        public int Size { get; internal set; }

        /// <summary>
        /// 获取文件索引类型。
        /// </summary>
        public IndexEntryType Type { get; internal set; }

        private string mHashedPath;
    }
}